﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLT_Public;
using QLT_BLL;

namespace GiaoDien
{
    public partial class uc_HoaDonNhap : DevExpress.XtraEditors.XtraUserControl
    {
        public uc_HoaDonNhap()
        {
            InitializeComponent();
        }
        public void Huy_Text(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
            {
                ctr.Text = string.Empty;
            }
            foreach (Control i in ctr.Controls)
                Huy_Text(i);
        }
        private void uc_HoaDonNhap_Load(object sender, EventArgs e)
        {
         gridControl1.DataSource=hoadonnhap_bll.LayDuLieu();
         bbi_Luu.Enabled = false;
         txtMaHDN.Enabled = false;
         txtTenHDN.Enabled = false;
         txtTenCongTy.Enabled = false;
         dateTimeNgayNhap.Enabled = false;
         bbi_Huy.Enabled = false;
        }
        int Flag;
        private void bbi_Them_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 0;
            Huy_Text(this);
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            txtMaHDN.Enabled = false;
            txtTenHDN.Enabled = true;
            txtTenCongTy.Enabled = true;
            dateTimeNgayNhap.Enabled = true;
            bbi_Huy.Enabled = true;
        }

        private void bbi_Sua_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 1;
            //cái này để lấy dữ liệu lên form
            txtMaHDN.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Hóa Đơn Nhập").ToString();
            txtTenHDN.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Hóa Đơn").ToString();
            txtTenCongTy.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Công Ty").ToString();
            dateTimeNgayNhap.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Ngày Nhập").ToString();
            //
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            txtMaHDN.Enabled = false;
            txtTenHDN.Enabled = true;
            txtTenCongTy.Enabled = true;
            dateTimeNgayNhap.Enabled = true;
            bbi_Huy.Enabled = true;
           
        }
        NhatKy_Bll nhatKy_bll = new NhatKy_Bll();
        HoaDonNhap_BLL hoadonnhap_bll = new HoaDonNhap_BLL();
        private void bbi_Luu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            NhatKy_Public nk = new NhatKy_Public();
            HoaDonNhap_Public hd = new HoaDonNhap_Public();
            if (txtTenCongTy.Text != "" && txtTenHDN.Text != "")
            {
                if (Flag == 0)
                {
                    try
                    {
                        //them
                        hd.TenHDN = txtTenHDN.Text;
                        hd.TenCongTy = txtTenCongTy.Text;
                        hd.NgayNhap = Convert.ToDateTime(dateTimeNgayNhap.Text);
                        hoadonnhap_bll.insert_HoaDonNhap(hd, hd, hd);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Thêm Mới";
                        nk.MoTa = "Thêm mới thông tin Hóa đơn nhập thuốc: '" + txtTenHDN.Text + "'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Thêm mới thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                    }
                    catch (Exception)
                    {
                        XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (Flag == 1)
                {
                    try
                    {
                        //sua
                        hd.TenHDN = txtTenHDN.Text;
                        hd.MaHDN = int.Parse(txtMaHDN.Text);
                        hd.TenCongTy = txtTenCongTy.Text;
                        hd.NgayNhap = Convert.ToDateTime(dateTimeNgayNhap.Text);
                        hoadonnhap_bll.update_HoaDonNhap(hd, hd, hd, hd);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Sửa";
                        nk.MoTa = "Sửa thông tin Mã Hóa đơn nhập thuốc: '" + txtMaHDN.Text + "'có tên: '"+txtTenHDN.Text+"'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Sửa thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);

                    }
                    catch (Exception)
                    {
                        XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                XtraMessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
            uc_HoaDonNhap_Load(sender,e);
            bbi_Them.Enabled =true;
            bbi_Sua.Enabled =true;
            bbi_Luu.Enabled = false;
            txtMaHDN.Enabled = false;
            txtTenHDN.Enabled = false;
            txtTenCongTy.Enabled = false;
            dateTimeNgayNhap.Enabled = false;
            bbi_Huy.Enabled = false;
        }

        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            
            txtMaHDN.Text=gridView1.GetRowCellValue(gridView1.FocusedRowHandle,"Mã Hóa Đơn Nhập").ToString();
            txtTenHDN.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Hóa Đơn").ToString();
            txtTenCongTy.Text =gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Công Ty").ToString();
            dateTimeNgayNhap.Text=gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Ngày Nhập").ToString();
        }

        private void bbi_Xoa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                HoaDonNhap_Public hd = new HoaDonNhap_Public();
                hd.MaHDN = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Hóa Đơn Nhập").ToString());
                hd.TenCongTy = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Công Ty").ToString();
                if (XtraMessageBox.Show("Bạn có muốn xóa Mã hóa đơn: '" + hd.MaHDN + "' của Công ty: '" + hd.TenCongTy + "' này không?", "Thông Báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    NhatKy_Public nk = new NhatKy_Public();
                    string d = DateTime.Now.ToString();
                    Class_TrungGian tg = new Class_TrungGian();
                    nk.TaiKhoan = tg.TaiKhoan;
                    nk.NgayGio = d;
                    nk.DoiTuong = tg.DoiTuong;
                    nk.HanhDong = "Xóa";
                    nk.MoTa = "Xóa thông tin Hóa đơn nhập thuốc: '" + txtTenHDN.Text + "'";
                    nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                    hoadonnhap_bll.delete_HoaDonNhap(hd);
                    uc_HoaDonNhap_Load(sender, e);
                }
            }
            catch (Exception) 
            {
                XtraMessageBox.Show("Không thể xóa do có bản ghi phụ thuộc!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
        }

        private void bbi_Huy_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Huy_Text(this);
            bbi_Them.Enabled = true;
            bbi_Sua.Enabled = true;
            bbi_Luu.Enabled = false;
            txtMaHDN.Enabled = false;
            txtTenHDN.Enabled = false;
            txtTenCongTy.Enabled = false;
            dateTimeNgayNhap.Enabled = false;
            bbi_Huy.Enabled = false;
        }

        private void txtTenHDN_Leave(object sender, EventArgs e)
        {
            if (txtTenHDN.Text == "")
                txtTenHDN.Focus();
        }

        private void txtTenCongTy_Leave(object sender, EventArgs e)
        {
            if (txtTenCongTy.Text == "")
                txtTenCongTy.Focus();
        }       
    }
}
